#include "subscriber.h"
#include "center.h"

namespace cores
{
    namespace topics
    {
        Subscriber::Subscriber(const std::string& name) : _name(name)
        {}

        Subscriber::~Subscriber()
        {}

        const std::string& Subscriber::name() const
        {
            return _name;
        }

        /**
         * @brief 订阅主题
         * 
         * @param topic 主题名称
         */
        void Subscriber::subscribe(const std::string& topic)
        {
            TopicsCenter::Instance()->subscribe(topic, this);
        }

        /**
         * @brief 退订主题
         * 
         * @param topic 主题名称
         */
        void Subscriber::unsubscribe(const std::string& topic)
        {
            TopicsCenter::Instance()->unsubscribe(topic, this);
        }
    }
}